<?php

namespace App\Controller;

use Cake\Event\Event;
use Cake\ORM\TableRegistry;

class EmissorasController extends AppController {

    public $helpers = ['Link'];

    public function beforeFilter(Event $event) {
        parent::beforeFilter($event);
        $this->Auth->allow(['index']);
    }

    public function isAuthorized($user = null) {
        $action = $this->request->action;

        if ($action == 'idnex') {
            return true;
        }

        $role = isset($user['role']) ? $user['role'] : "";
        if (empty($role)) {
            return false;
        }
        if ($role == "admin") {
            return true;
        }

        if ($action == 'add' && $role == "focal") {
            return true;
        }

        return false;
    }

    public function index() {
        $params = $this->configParams($this->request->query);
        $emissorasTable = TableRegistry::get('Emissoras');
        $query = $emissorasTable->find('novas', ['options' => ['conditions' => $params]]);
        $this->loadComponent('Paginator');
        $emissoras = $this->Paginator->paginate($query, [ 'limit' => 10]);
        $this->set(compact('emissoras', 'params'));
    }

    private function configParams($params) {
        $newArray = array();
        $newArray['codigo_abert'] = isset($params['codigo_abert']) ? $params['codigo_abert'] : null;
        $newArray['cpf_cnpj'] = isset($params['cpf_cnpj']) ? $params['cpf_cnpj'] : null;
        $newArray['cidade'] = isset($params['cidade']) ? $params['cidade'] : null;
        $newArray['razaosocial'] = isset($params['razaosocial']) ? $params['razaosocial'] : null;
        $newArray['nomefantasia'] = isset($params['nomefantasia']) ? $params['nomefantasia'] : null;

        return $newArray;
    }

    public function add() {
        if ($this->request->is('post')) {
            $this->save();
            return;
        }

        $emissoras = TableRegistry::get('Emissoras');
        $emissora = $emissoras->newEntity();
        $errors = array();
        $this->set(compact('errors', 'emissora'));
    }

    public function save() {
        $emissoras = TableRegistry::get('Emissoras');
        $emissora = $emissoras->newEntity($this->request->data);
        $emissora->set('situacao_id', \App\Model\Entity\Situacao::Nova);
        $emissora->set('emissora_ativa', 'N');
        $emissora->set('cpf_cnpj', $this->request->data['cpf_cnpj']);
        $emissora->set('cidade', $this->request->data['cidade']);
        $emissora->set('codigo_abert', $this->request->data['codigo_abert']);

        if (!$emissoras->save($emissora)) {
            $errors = $emissora->errors();
            $emissora->ofuscar_CpfCnpj(true);
            $this->set(compact('errors', 'emissora'));
            return;
        }

        $this->Flash->success('Cadastro realizado com sucesso');
        return $this->redirect(['controller' => 'aprovacoes', 'action' => 'index']);
    }

}
